home *** CD-ROM | disk | FTP | other *** search
- """Utility which tries to locate the Tcl/Tk 8.0 DLLs on Windows.
-
- This is a no-op on other platforms.
- """
-
- # Error messages we may spit out
-
- NO_TCL_MESSAGE = """\
- WHOOPS! I can't find a Tcl/Tk 8.0 installation anywhere.
- Please make sure that Tcl.Tk 8.0 is installed and that the PATH
- environment variable is set to include the Tcl/bin directory
- (or wherever TK80.DLL and TCL80.DLL are installed).
- If you don't know how to fix this, consider searching the Python FAQ
- for the error you get; post to the comp.lang.python if all else fails.
- Read the source file FixTk.py for details.
- """
-
- NO_TKINTER_MESSAGE = """\
- WHOOPS! Even though I think I have found a Tcl/Tk 8.0 installation,
- I can't seem to import the _tkinter extension module.
- I get the following exception:
- ImportError: %s
- If you don't know how to fix this, consider searching the Python FAQ
- for the error you get; post to the comp.lang.python if all else fails.
- Read the source file FixTk.py for details.
- """
-
- import sys
- if sys.platform == "win32":
- try:
- import _tkinter
- except ImportError:
- import os
- try:
- path = os.environ['PATH']
- except KeyError:
- path = ""
- python_exe = sys.executable
- python_dir = os.path.dirname(python_exe)
- program_files = os.path.dirname(python_dir)
- def tclcheck(dir):
- for dll in "tcl80.dll", "tk80.dll", "tclpip80.dll":
- if not os.path.isfile(os.path.join(dir, dll)):
- return 0
- return 1
- for tcldir in [program_files, "\\Program files", "\\",
- "C:\\Program Files", "D:\\Program Files"]:
- tcldir = os.path.join(tcldir, "Tcl", "bin")
- if tclcheck(tcldir):
- break
- else:
- tcldir = None
- if not tcldir:
- sys.stderr.write(NO_TCL_MESSAGE)
- else:
- if path and path[-1] != os.pathsep:
- path = path + os.pathsep
- path = path + tcldir
- os.environ["PATH"] = path
- os.putenv("PATH", path)
- try:
- import _tkinter
- except ImportError, message:
- sys.stderr.write(NO_TKINTER_MESSAGE % str(message))
-